$(document).ready(function(){
    
    $('#estado').change(function(){
        
        var url = $('#base_url').val()+'/cidade/load_cidades';
        
        $('#cidade').hide();
        $('#loader').show();
        
        $('#cidade').load(url,{uf: $(this).val()},function(){
            $('#loader').hide();
            $('#cidade').show();
        });
    });
    
   $("#editar_funcionario").validate({
        onkeyup: false,
        errorClass: 'error',
        validClass: 'valid',
        highlight: function(element) {
            $(element).closest('div').addClass("f-error");
        },
        unhighlight: function(element) {
            $(element).closest('div').removeClass("f-error");
        },
        errorPlacement: function(error, element) {
            $(element).closest('div').append(error);
        },
        rules: {
            nome: {
                required: true
            },
            status: {
                required: true
            },
            sexo: {
                required: true
            },
            telefone: {
                required: true
            },
            logradouro: {
                required: true
            },
            numero: {
                required: true
            },
            bairro: {
                required: true
            },
            cidade: {
                required: true
            },
            cpf: {
                required: true,
                validaCpfCnpj:true,
                valida_cpf: true
                
            },
            rg: {
                required: true
            },
            setor: {
                required: true
            },
            messages: {
            }
        }
    });
jQuery.validator.addMethod('validaCpfCnpj', function(value, element) {

        value = removeMascara(value);
        return(value.length > 11) ? validaCnpj(value) : validaCpf(value);
        //return validaCpf(value);
    }, 'O valor fornecido não foi valido');
    
    function removeMascara(pNum)
    {
        return String(pNum).replace(/\D/g, "").replace(/^0+/, "");
    }
    
    function validaCpf(cpf) {
        var soma;
        var resto;
        var i;

        //return true;

        if ((cpf.length !== 11) ||
                (cpf === "00000000000") || (cpf === "11111111111") ||
                (cpf === "22222222222") || (cpf === "33333333333") ||
                (cpf === "44444444444") || (cpf === "55555555555") ||
                (cpf === "66666666666") || (cpf === "77777777777") ||
                (cpf === "88888888888") || (cpf === "99999999999")) {
            return false;
        }

        soma = 0;

        for (i = 1; i <= 9; i++) {
            soma += Math.floor(cpf.charAt(i - 1)) * (11 - i);
        }

        resto = 11 - (soma - (Math.floor(soma / 11) * 11));

        if ((resto == 10) || (resto == 11)) {
            resto = 0;
        }

        if (resto != Math.floor(cpf.charAt(9))) {
            return false;
        }

        soma = 0;

        for (i = 1; i <= 10; i++) {
            soma += cpf.charAt(i - 1) * (12 - i);
        }

        resto = 11 - (soma - (Math.floor(soma / 11) * 11));

        if ((resto == 10) || (resto == 11)) {
            resto = 0;
        }

        if (resto != Math.floor(cpf.charAt(10))) {
            return false;
        }

        return true;
    }
    
    function validaCnpj(s) {
        var i;
        var c = s.substr(0, 12);
        var dv = s.substr(12, 2);
        var d1 = 0;

        for (i = 0; i < 12; i++) {
            d1 += c.charAt(11 - i) * (2 + (i % 8));
        }

        if (d1 == 0)
            return false;

        d1 = 11 - (d1 % 11);

        if (d1 > 9)
            d1 = 0;
        if (dv.charAt(0) != d1) {
            return false;
        }

        d1 *= 2;

        for (i = 0; i < 12; i++) {
            d1 += c.charAt(11 - i) * (2 + ((i + 1) % 8));
        }

        d1 = 11 - (d1 % 11);

        if (d1 > 9)
            d1 = 0;
        if (dv.charAt(1) != d1) {
            return false;
        }

        return true;
    }
   


    
$('.mask-cpf').inputmask("999.999.999-99");
   
    jQuery.validator.addMethod("valida_cpf", function(value, element) {
        
        var id = $('#funcionario_id').val();
        var cpf = $('#cpf').val();
        var url = $('#base_url').val()+'/funcionario/valida_cpf/httpx';
       
        
        var resultado= $.ajax({url:url,
            dataType:'html',
            type:'post',
            data:'cpf='+ cpf + '&id='+ id,
            async:false,
        
        }).responseText;
        
        if(resultado == 1){
                return true;
            }else{
                return false;
            }

    }, "Já existe um funcionário cadastrado com este cpf.");
    
    
    
});